import httpx
from mcp.server import FastMCP

# # 初始化 FastMCP 服务器
app = FastMCP('web-search')

@app.tool()
async def web_search(query: str) -> str:
    """
    搜索互联网内容

    Args:
        query: 要搜索内容

    Returns:
        搜索结果的总结
    """

    async with httpx.AsyncClient() as client:
        response = await client.post(
            'https://open.bigmodel.cn/api/paas/v4/tools',
            headers={'Authorization': '换成你自己的API KEY'},
            json={
                'tool': 'web-search-pro',
                'messages': [
                    {'role': 'user', 'content': query}
                ],
                'stream': False
            }
        )

        res_data = []
        for choice in response.json()['choices']:
            for message in choice['message']['tool_calls']:
                search_results = message.get('search_result')
                if not search_results:
                    continue
                for result in search_results:
                    res_data.append(result['content'])

        return '\n\n\n'.join(res_data)


if __name__ == "__main__":
    app.run(transport='stdio')
{
        "choices": [{
                "finish_reason": "stop",
                "index": 0,
                "message": {
                        "role": "tool",
                        "tool_calls": [{
                                "id": "1575e0ec714b5445",
                                "search_intent": [{
                                        "category": "体育",
                                        "index": 0,
                                        "intent": "SEARCH_ALL",
                                        "keywords": "中国队奥运会拿了多少奖牌",
                                        "query": "中国队奥运会拿了多少奖牌"
                                }],
                                "type": "search_intent"
                        }, {
                                "id": "1575e0ec714b5445",
                                "search_result": [{
                                        "content": "在刚刚结束的第33届夏季奥林匹克运动会巴黎奥运会上，中国代表团表现出色，获得了40金、27银、24铜共91枚奖牌，金牌数并列第一，创造了我国参加夏季奥运会以来境外参赛历史的最佳成绩。本次比赛中，中国队在多个项目上实现了历史性突破，包括自由式小轮车、男子100米自由泳、网球单打、男子25米手枪速射、男子混合泳接力、花样游泳集体项目、女子拳击、举重大级别、艺术体操集体全能和花样游泳双人项目等多个项目。文章还回顾了自1932年中国运动员刘长春第一次登上奥运赛场以来，中国奥运历史上的多个第一”，如1952年新中国选手在奥运会上获得的第一个比赛纪录、1984年获得第一枚奥运金牌和第一块奥运团体赛金牌、2008年北京成功举办奥运会等。这些成就体现了中国奥运事业的不断发展与辉煌。",
                                        "icon": "https://sfile.chatglm.cn/searchImage/k_sina_com_cn_icon.jpg",
                                        "index": 0,
                                        "link": "https://k.sina.com.cn/article_1834783273_6d5c9229019011po6.html?cre=tianyi&mod=pcspth&loc=9&r=0&rfunc=68&tj=cxvertical_pc_spth&tr=12&from=society",
                                        "media": "新浪",
                                        "refer": "ref_1",
                                        "title": "中国奥运这些“第一”，看多少次都自豪！（发布时间：2024-08-15 03:34:32）"
                                }, {
                                        "content": "巴黎奥运会最后一个比赛日，中国代表团力争守住金牌榜第一的位置，目前所有选手结束了所有比赛，只有李雯雯拿到了举重女子81公斤以上级的金牌，帮助中国队的金牌总数达到40枚，创造了境外单届奥运会的最佳战绩，同时继续领跑金牌榜。\n这个比赛日，中国队只有3个项目有机会冲击金牌，包括举重女子81公斤以上级、场地自行车女子全能赛、现代五项女子个人赛。\n举重女子81公斤以上级：李雯雯在抓举阶段连续举起130公斤、136公斤，成绩定格136公斤，领先优势较大更是放弃第三次抓举。\n到了挺举阶段，李雯雯分别举起167公斤、173公斤，其他对手望尘莫及，最终李雯雯以抓举136公斤、挺举173公斤，总成绩309公斤强势夺冠，也是实现了卫冕。\n场地自行车女子全能赛：刘佳丽第一场捕捉赛得到18分，暂居第12位，第二场冲刺赛得到10分，跌至第16位，第三场淘汰赛第8个被淘汰出局，提前退居前三争夺，最终锁定第16名。\n现代五项女子个人赛：张明煜参加马术、击剑、游泳、跑步、射击比赛，前两项结束，张明煜总分排名第四，游泳结束之后跌至第五，最后两项发挥不佳，其中跑步第15完赛，最终总分1386锁定第十四，无缘奖牌。\n这样，中国代表团的所有比赛全部结束，在巴黎奥运会上总共取得40",
                                        "icon": "https://sfile.chatglm.cn/searchImage/sports_eastday_com_icon.jpg",
                                        "index": 0,
                                        "link": "https://sports.eastday.com/a/240811202425960931797.html",
                                        "media": "东方体育",
                                        "refer": "ref_2",
                                        "title": "40金27银24铜！中国奥运收官了，91枚奖牌创历史，仍力压美国领跑（发布时间：2024-08-11 20:40:31）"
                                }, {
                                        "content": "最新奥运奖牌榜，中国队金第一，比美国多4金，第二、三又变了\n2024年8月6日星期二，巴黎奥运会进入第十一比赛日。截至当日清晨6时，奥运奖牌榜经历了显著变化，中国凭借优异表现跃居榜首，美国则紧随其后，位居第二。\n在过去的一天中，中国代表团收获颇丰，新增2金3银3铜，这一成绩超越了仅获得1枚金牌的美国队，导致美国排名下滑。目前，中国以21金18银14铜，总计53枚奖牌领跑；美国则持有20金30银28铜，奖牌总数达到78枚，暂列第二。\n排行榜上的其他位置也竞争激烈：澳大利亚以13金11银8铜位居第三；法国作为东道主，以12金16银18铜排在第四；英国和韩国各自以12金和11金位列第五和第六，奖牌总数分别为42枚和26枚；日本与意大利均以10金并列第七，奖牌数同为26枚；荷兰和德国分别以17枚和16枚奖牌排在第九和第十位。\n奖牌榜的波动显示了美中之间的激烈角逐，而昔日奖牌榜常客韩国和日本，现今已滑落至第六和第七，奖牌总数未构成太大威胁。焦点仍集中在奖牌数领先的两国身上。\n在中国的金牌中，李越宏在男子25米手枪速射决赛中以32分夺冠，韩国选手摘银；另一枚金牌由邹敬圆在男子双杠决赛中以16.200分赢得，乌克兰选手获得银牌。美国的",
                                        "icon": "https://sfile.chatglm.cn/searchImage/sports_eastday_com_icon.jpg",
                                        "index": 0,
                                        "link": "https://sports.eastday.com/a/240806143930282993665.html",
                                        "media": "东方体育",
                                        "refer": "ref_3",
                                        "title": "最新奥运奖牌榜，中国队金第一，比美国多4金，第二、三又变了（发布时间：2024-08-06 16:27:34）"
                                }, {
                                        "content": "北京时间8月1日，巴黎奥运会第6个比赛日，中国代表团传来的捷报频频，刘宇坤在射击男子50米步枪三姿项目实现逆转夺冠，杨家玉在田径女子20公里竞走项目收获金牌，帮助中国代表团短短1个小时连夺2枚金牌，目前11金7银3铜稳居金牌榜第一位，同时郑钦文2-0首进奥运会女单决赛，创造中国网球的新历史。按照赛程，乒乓球男单1/4决赛，樊振东大战张本智和。\n在女子20公里竞走，现世界纪录保持者、中国选手杨家玉以1小时25分54秒的成绩，一路领先到夺冠，帮助中国田径队收获了本届奥运会的第一枚金牌，也是在这个项目上的第4枚金牌，其中杨家玉个人在该项目中也实现了集奥运会冠军、世锦赛冠军、世界纪录于一身的大满贯，弥补了上一届奥运会最后时刻被罚出局的遗憾。\n此外，中国队还在射击队在男子50米步枪三姿的项目上再添一枚金牌，由刘宇坤夺得。\n此前预赛，刘宇坤以594环总成绩第一晋级，来到决赛，刘宇坤大多数时间排名第二，直到淘汰赛阶段倒数第三枪完成反超，最后锁定第一，为中国射击队拿到本届奥运会的第4枚金牌。\n目前，中国代表团的成绩改写为11金7银3铜，总共21枚奖牌，继续高居金牌榜第一位，同时甩开了身后的法国队、日本队、澳大利亚队，尤其日本队，前面两个",
                                        "icon": "https://sfile.chatglm.cn/searchImage/k_sina_com_cn_icon.jpg",
                                        "index": 0,
                                        "link": "https://k.sina.com.cn/article_2834321443_a8f05023001010ssg.html?cre=tianyi&mod=pcspth&loc=15&r=0&rfunc=35&tj=cxvertical_pc_spth&tr=12",
                                        "media": "新浪",
                                        "refer": "ref_4",
                                        "title": "3个小时，诞生7金！中国拿2金，日本0奖牌，郑钦文首进奥运会决赛（发布时间：2024-08-02 09:55:39）"
                                }, {
                                        "content": "巴黎奥运第15个比赛日已经到了尾声，奖牌榜榜首争夺进入白热化状态，在晚场的比赛中，中国队花泳双人比赛再夺一金，目前已经获得38枚金牌，金牌数和奖牌数都已经追平了东京奥运会，目前在奖牌榜我们排名第一。美国队在田径项目接连夺金，这个晚场收获四金一银两铜，金牌数已经来到了37枚金牌，但是接下来还有男篮决赛，美国男篮夺金没有悬念，他们在这个比赛日结束后，金牌数肯定也会来到38枚。\n本来美国队已经落后我们四枚金牌，不过在这个晚场比赛中，美国队追赶速度很快，先是女足决赛，1:0击败巴西夺金。接着在田径赛场，他们在女子100米跨栏，男子4400米接力，女子4400米接力这些项目连续获得金牌。另外在男子跳高项目中，美国戏剧性拿到银牌，本来他与新西兰选手科尔成绩相同，两人可以共享金牌，但是两人都不同意，最终进行一轮加赛，加赛中新西兰选手科尔获胜，美国队收获银牌。现在男篮决赛正在进行中，美国队获胜只是时间问题。\n男篮决赛一结束，美国的金牌数就会来到38金，凭借奖牌总数的优势，再次来到奖牌榜榜首位置，中国队想要在今天的比赛结束时，保住榜首位置，只能靠最后进行的拳击比赛了，凌晨4点35，女子拳击75公斤级决赛，李倩冲击金牌，一旦成功，中国队就",
                                        "icon": "https://sfile.chatglm.cn/searchImage/www_sohu_com_icon.jpg",
                                        "index": 0,
                                        "link": "https://www.sohu.com/a/800069005_121926754",
                                        "media": "搜狐",
                                        "refer": "ref_5",
                                        "title": "奥运最新奖牌榜，中国38金，美国37金，能否保住领先就看拳击了（发布时间：2024-08-11 14:59:00）"
                                }, {
                                        "content": "巴黎奥运会最后一个比赛日，中国代表团力争守住金牌榜第一的位置，目前所有选手结束了所有比赛，只有李雯雯拿到了举重女子81公斤以上级的金牌，帮助中国队的金牌总数达到40枚，创造了境外单届奥运会的最佳战绩，不过美国代表团依靠女篮的夺冠，金牌数同样达到40枚，最后依靠银牌数多的优势反超登顶金牌榜。\n这个比赛日，中国队只有3个项目有机会冲击金牌，包括举重女子81公斤以上级、场地自行车女子全能赛、现代五项女子个人赛。\n举重女子81公斤以上级：李雯雯在抓举阶段连续举起130公斤、136公斤，成绩定格136公斤，领先优势较大更是放弃第三次抓举。\n到了挺举阶段，李雯雯分别举起167公斤、173公斤，其他对手望尘莫及，最终李雯雯以抓举136公斤、挺举173公斤，总成绩309公斤强势夺冠，也是实现了卫冕。\n场地自行车女子全能赛：刘佳丽第一场捕捉赛得到18分，暂居第12位，第二场冲刺赛得到10分，跌至第16位，第三场淘汰赛第8个被淘汰出局，提前退居前三争夺，最终锁定第16名。\n现代五项女子个人赛：张明煜参加马术、击剑、游泳、跑步、射击比赛，前两项结束，张明煜总分排名第四，游泳结束之后跌至第五，最后两项发挥不佳，其中跑步第15完赛，最终总分1386锁定第十四，无缘",
                                        "icon": "https://sfile.chatglm.cn/searchImage/www_163_com_icon.jpg",
                                        "index": 0,
                                        "link": "https://www.163.com/dy/article/J9B8M4F305497GLB.html?clickfrom=w_sports",
                                        "media": "网易",
                                        "refer": "ref_6",
                                        "title": "40金+91枚奖牌！中国奥运收官了，创历届最佳，却收到一件坏消息（发布时间：2024-08-11 19:50:49）"
                                }, {
                                        "content": "百年过去，奥运会如何还能上新”？ 随着盛夏的风吹过塞纳河，世界迎来了巴黎时刻”。在未来两周，巴黎将举办一场充满法式浪漫和历史的最高水平的体育竞技比赛。在东京奥运会上，中国代表团获得了88枚奖牌，其中包括38金、32银和18铜，人们的关注点是：中国队这次能拿多少金牌？同时，许多网友也好奇这届奥运会的看点。奥运会自1896年首届雅典奥运会以来，已经走过了一百多年的历史，举办了30多届。尽管年龄较大，但奥运会并未垂垂老矣”，相反，它与时代共同前进，保持着青春的底色。巴黎奥运会有很多上新”之处，比如首次取消主场馆，在河面上举办开幕式，运动员乘船入场，开放场地和城市共享空间的理念相呼应。此外，本届奥运会预计将有5250名男运动员和5250名女运动员参赛，实现男女运动员比例1：1，这是奥运会历史上的首次。同时，巴黎奥运会新增了4个年轻一代流行的运动项目：霹雳舞、滑板、冲浪和运动攀岩。奥运会始终保持对相互理解、友谊、团结和公平竞争的奥林匹克精神的追求，同时开放包容、紧随潮流，这就是每一代人都喜爱的奥运会。",
                                        "icon": "https://sfile.chatglm.cn/searchImage/www_sohu_com_icon.jpg",
                                        "index": 0,
                                        "link": "https://www.sohu.com/a/796438016_121455647",
                                        "media": "搜狐",
                                        "refer": "ref_7",
                                        "title": "百年过去，奥运咋还能“上新”？（发布时间：2024-07-27 07:01:00）"
                                }, {
                                        "content": "导读：中国奥运会总共拿多少奖牌?中国奥运会现多少块金牌?上届奥运会中国获得多少金牌?中国在奥运会赢了几枚金牌?截至2018年，中国在奥运会共获得240枚金牌(其中夏奥会227枚，冬奥会13枚)。第23届夏季奥运会(1984)获得15枚金牌;.北京奥运会中国代表队含金量最高的五枚金牌你都知道哪几块?30届奥运会中国奖牌数?第30届奥运会中国共获得38枚金牌，88枚奖牌。25届中国奥运会金牌数?...\n中国在奥运会上获得了多少奖牌？\n2021年东京奥运会，中国奥运会共获得88枚奖牌。 8月8日，第32届夏季奥运会在日本东京正式闭幕。 经过17天的角逐，中国队位列世界奖牌榜第二位。\n中国奥运会有多少金牌？\n中国奥运会共获得262枚金牌。 各届获得的金牌数如下：1984年15枚，1988年5枚，1992年16枚中国各届奥运会奖牌，1996年16枚，2000年28枚，2004年32枚，2008年48枚。2012年38元，2016年26元。 ..在。\n中国在上届奥运会上获得了多少金牌？\n上一届奥运会在巴西里约热内卢举行。 在里约奥运会上，中国队共获得26金18银26铜，共计70枚奖牌。 截至里约奥运会，中国队10次参加夏季奥运会共获得227枚金牌和银牌。\n中国在奥运会上获得了多少",
                                        "index": 0,
                                        "link": "http://www.bja1.com/k12/91315.html",
                                        "refer": "ref_8",
                                        "title": "中国奥运会总共拿多少奖牌?2021东京奥运会含金量最高（发布时间：2023-01-06 16:09:00）"
                                }, {
                                        "content": "中国参加奥运会运动员获金牌分别多少块2021年?\n2021年8月8日，中国代表团结束了第32届东京奥运会的比赛，最终获得38枚金牌，32枚银牌，18枚铜牌，奖牌总数88枚，列奖牌榜第二名。其中33位女性运动员夺金，14位\n2021奥运会中国能拿多少块金牌?\n这次东京奥运会的中国的夺金点还是非常多的，预测下来大概是在75个夺金点。 目前最为保守的估计中国队夺得金牌的数量为:40枚 目前现说最稳的三大项目，也是我国。\n2021年奥运会中国获得多少枚金牌?有何感想?\n2021年东京奥运会，中国体育代表团共获得了三十八枚奥运金牌。每一枚金牌的背后，都是教练、运动员、及团队其他成员共同努力的结果。随着我们国家的经济发展越。\n2021年冬季奥运会中国奖牌有多少?\n2021年冬季奥运会中国以38枚金牌名列奖牌榜第二，仅次于美国奥运会代表队。在这次参加的奥运会16天比赛中，中国代表团成绩突出金牌数成为参加海外追平了英国的。\n2021中国奥运会金牌榜?\n第01金:射击女子10米气步枪 杨倩 第02金:举重女子49公斤级 侯志慧 第03金:击剑女子个人重剑 孙一文 第04金:跳水女子双人三米板 施廷懋/王涵 第05金:举重男。\n2021年东京奥运会中国奖牌榜?\n2021年东京奥运会中国奖牌榜",
                                        "icon": "https://sfile.chatglm.cn/searchImage/www_zlbqfj_cn_icon.jpg",
                                        "index": 0,
                                        "link": "https://www.zlbqfj.cn/aoyun/1819235953.html",
                                        "media": "抖音",
                                        "refer": "ref_9",
                                        "title": "2021奥运会中国拿了多少奖牌（发布时间：2023-05-05 06:55:21）"
                                }],
                                "type": "search_result"
                        }]
                }
        }],
        "created": 1723717370,
        "id": "20240815182248e12590715ca34df4",
        "model": "web-search-pro",
        "request_id": "49a2a31f-10c3-4e95-9b7c-5e5fabcfce9e",
        "usage": {
                "completion_tokens": 2752,
                "prompt_tokens": 467,
                "total_tokens": 3219
        }
}